The present invention relates to methods and systems for debugging software and more particularly to debugging methods and systems especially adapted for code debugging in a system that executes multiple codes within a multi-architecture environment.
A software debugger is a mechanism that is generally employed to detect and correct malfunctions in a newly developed program or a modified existing program that is being tested for proper execution. Conventional debuggers permit a user to execute the program in single steps or to set stops or breakpoints. Stops or breakpoints are points in a program at which the program is to be stopped for user interaction for examination or modification of the memory content or of program state information.
If the software to be debugged is designed for use on a new hardware architecture that is not available for program execution, a software simulator may be employed for execution of some kinds of software on an available computer having a different architecture. Program debugging may then be provided by using simulated architecture comprising the software simulator used on an available architecture.
However, user or other higher level software normally has external run-time dependencies that make using a conventional simulator and debugger to execute and debug such software on the native architecture impractical or impossible. For example, run-time libraries and the operating system itself may not be available for the new architecture. A new program that makes library and operating system calls will not be executable by the simulator being used for debugging in the native architecture unless extensive modifications are made in the new program to remove the unavailable external dependencies.
A need has thus existed for executing, testing and debugging new software designed for a new hardware architecture even though the actual new hardware, a new operating system therefor and/or support software are not available. A new system and method disclosed in the cross-referenced patent application Ser. No. 07/666,039, filed Mar. 7, 1991 and other cross-referenced applications are directed to meeting this and related needs through the execution of multiple codes in a multiple architecture environment. A new callable simulator employable in the new multi-architecture system is disclosed in the cross-referenced application Ser. No. 07/666,022, filed Mar. 7, 1991.
From the standpoint of debugging in a multi-architecture environment, the user needs to be able to interact with program code in either architecture even though the codes make use of different features of the two architectures. A multiple architecture debugger thus requires simultaneous access to the multiple architectures.
The present invention is directed to a new and improved debugger system and method that can be employed to debug a program code with simultaneous access to multiple architectures in a multi-code execution system within a multi-architecture environment.